"""
统一API响应格式工具
用于规范API返回的数据格式
"""

from rest_framework.response import Response
from rest_framework import status


def success_response(data=None, message="操作成功", code=200):
    """
    成功响应格式
    
    Args:
        data: 返回的数据
        message: 成功消息
        code: 状态码
    
    Returns:
        Response: 统一格式的成功响应
    """
    return Response({
        'code': code,
        'message': message,
        'data': data,
        'success': True
    }, status=status.HTTP_200_OK)


def error_response(message="操作失败", code=400, data=None, status_code=400):
    """
    错误响应格式
    
    Args:
        message: 错误消息
        code: 错误码
        data: 可选的错误数据
        status_code: HTTP状态码
    
    Returns:
        Response: 统一格式的错误响应
    """
    return Response({
        'code': code,
        'message': message,
        'data': data,
        'success': False
    }, status=status_code)


def paginated_response(data, count, page, page_size):
    """
    分页响应格式
    
    Args:
        data: 分页数据
        count: 总数量
        page: 当前页码
        page_size: 每页大小
    
    Returns:
        Response: 分页格式的响应
    """
    return Response({
        'code': 200,
        'message': '获取成功',
        'data': {
            'list': data,
            'count': count,
            'page': page,
            'page_size': page_size,
            'total_pages': (count + page_size - 1) // page_size
        },
        'success': True
    }, status=status.HTTP_200_OK)
